package com.itchen.school.common.jdkext.lambda;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Objects;

public class SerializedLambda implements Serializable {

    private static final long serialVersionUID = 8025925345765570181L;
    private Class<?> capturingClass;
    private String functionalInterfaceClass;
    private String functionalInterfaceMethodName;
    private String functionalInterfaceMethodSignature;
    private String implClass;
    private String implMethodName;
    private String implMethodSignature;
    private int implMethodKind;
    private String instantiatedMethodType;
    private Object[] capturedArgs;

    public SerializedLambda() {}

    public Class<?> getCapturingClass() {
        return this.capturingClass;
    }

    public String getFunctionalInterfaceClass() {
        return this.functionalInterfaceClass;
    }

    public String getFunctionalInterfaceMethodName() {
        return this.functionalInterfaceMethodName;
    }

    public String getFunctionalInterfaceMethodSignature() {
        return this.functionalInterfaceMethodSignature;
    }

    public String getImplClass() {
        return this.implClass;
    }

    public String getImplMethodName() {
        return this.implMethodName;
    }

    public String getImplMethodSignature() {
        return this.implMethodSignature;
    }

    public int getImplMethodKind() {
        return this.implMethodKind;
    }

    public String getInstantiatedMethodType() {
        return this.instantiatedMethodType;
    }

    public Object[] getCapturedArgs() {
        return this.capturedArgs;
    }

    public void setCapturingClass(Class<?> capturingClass) {
        this.capturingClass = capturingClass;
    }

    public void setFunctionalInterfaceClass(String functionalInterfaceClass) {
        this.functionalInterfaceClass = functionalInterfaceClass;
    }

    public void setFunctionalInterfaceMethodName(String functionalInterfaceMethodName) {
        this.functionalInterfaceMethodName = functionalInterfaceMethodName;
    }

    public void setFunctionalInterfaceMethodSignature(String functionalInterfaceMethodSignature) {
        this.functionalInterfaceMethodSignature = functionalInterfaceMethodSignature;
    }

    public void setImplClass(String implClass) {
        this.implClass = implClass;
    }

    public void setImplMethodName(String implMethodName) {
        this.implMethodName = implMethodName;
    }

    public void setImplMethodSignature(String implMethodSignature) {
        this.implMethodSignature = implMethodSignature;
    }

    public void setImplMethodKind(int implMethodKind) {
        this.implMethodKind = implMethodKind;
    }

    public void setInstantiatedMethodType(String instantiatedMethodType) {
        this.instantiatedMethodType = instantiatedMethodType;
    }

    public void setCapturedArgs(Object[] capturedArgs) {
        this.capturedArgs = capturedArgs;
    }

    public String toString() {
        Class var10000 = this.getCapturingClass();
        return "SerializedLambda(capturingClass=" + var10000 + ", functionalInterfaceClass=" + this.getFunctionalInterfaceClass() + ", functionalInterfaceMethodName=" + this.getFunctionalInterfaceMethodName() + ", functionalInterfaceMethodSignature=" + this.getFunctionalInterfaceMethodSignature() + ", implClass=" + this.getImplClass() + ", implMethodName=" + this.getImplMethodName() + ", implMethodSignature=" + this.getImplMethodSignature() + ", implMethodKind=" + this.getImplMethodKind() + ", instantiatedMethodType=" + this.getInstantiatedMethodType() + ", capturedArgs=" + Arrays.deepToString(this.getCapturedArgs()) + ")";
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof SerializedLambda)) {
            return false;
        } else {
            SerializedLambda other = (SerializedLambda)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$capturingClass = this.getCapturingClass();
                Object other$capturingClass = other.getCapturingClass();
                if (this$capturingClass == null) {
                    if (other$capturingClass != null) {
                        return false;
                    }
                } else if (!this$capturingClass.equals(other$capturingClass)) {
                    return false;
                }

                Object this$functionalInterfaceClass = this.getFunctionalInterfaceClass();
                Object other$functionalInterfaceClass = other.getFunctionalInterfaceClass();
                if (this$functionalInterfaceClass == null) {
                    if (other$functionalInterfaceClass != null) {
                        return false;
                    }
                } else if (!this$functionalInterfaceClass.equals(other$functionalInterfaceClass)) {
                    return false;
                }

                Object this$functionalInterfaceMethodName = this.getFunctionalInterfaceMethodName();
                Object other$functionalInterfaceMethodName = other.getFunctionalInterfaceMethodName();
                if (this$functionalInterfaceMethodName == null) {
                    if (other$functionalInterfaceMethodName != null) {
                        return false;
                    }
                } else if (!this$functionalInterfaceMethodName.equals(other$functionalInterfaceMethodName)) {
                    return false;
                }

                label94: {
                    Object this$functionalInterfaceMethodSignature = this.getFunctionalInterfaceMethodSignature();
                    Object other$functionalInterfaceMethodSignature = other.getFunctionalInterfaceMethodSignature();
                    if (this$functionalInterfaceMethodSignature == null) {
                        if (other$functionalInterfaceMethodSignature == null) {
                            break label94;
                        }
                    } else if (this$functionalInterfaceMethodSignature.equals(other$functionalInterfaceMethodSignature)) {
                        break label94;
                    }

                    return false;
                }

                label87: {
                    Object this$implClass = this.getImplClass();
                    Object other$implClass = other.getImplClass();
                    if (this$implClass == null) {
                        if (other$implClass == null) {
                            break label87;
                        }
                    } else if (this$implClass.equals(other$implClass)) {
                        break label87;
                    }

                    return false;
                }

                Object this$implMethodName = this.getImplMethodName();
                Object other$implMethodName = other.getImplMethodName();
                if (this$implMethodName == null) {
                    if (other$implMethodName != null) {
                        return false;
                    }
                } else if (!this$implMethodName.equals(other$implMethodName)) {
                    return false;
                }

                label73: {
                    Object this$implMethodSignature = this.getImplMethodSignature();
                    Object other$implMethodSignature = other.getImplMethodSignature();
                    if (this$implMethodSignature == null) {
                        if (other$implMethodSignature == null) {
                            break label73;
                        }
                    } else if (this$implMethodSignature.equals(other$implMethodSignature)) {
                        break label73;
                    }

                    return false;
                }

                if (this.getImplMethodKind() != other.getImplMethodKind()) {
                    return false;
                } else {
                    Object this$instantiatedMethodType = this.getInstantiatedMethodType();
                    Object other$instantiatedMethodType = other.getInstantiatedMethodType();
                    if (this$instantiatedMethodType == null) {
                        if (other$instantiatedMethodType != null) {
                            return false;
                        }
                    } else if (!this$instantiatedMethodType.equals(other$instantiatedMethodType)) {
                        return false;
                    }

                    if (!Arrays.deepEquals(this.getCapturedArgs(), other.getCapturedArgs())) {
                        return false;
                    } else {
                        return true;
                    }
                }
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof SerializedLambda;
    }

    @Override
    public int hashCode() {
        int result = Objects.hash(capturingClass, functionalInterfaceClass, functionalInterfaceMethodName, functionalInterfaceMethodSignature, implClass, implMethodName, implMethodSignature, implMethodKind, instantiatedMethodType);
        result = 31 * result + Arrays.hashCode(capturedArgs);
        return result;
    }

}
